var fs = require('fs');
var file = require('./file.js').file;
var dir = require('./dir.js').dir;
var api = require('./commapi.js');

var	filedb = 
{
	//-设置数据库规模-
	setDbScale : function(n)
	{
		dir.setDbScale(n);
	},

	open : function(path)
	{
		this._strDBDir = path;
		api.createSubDir(this._strDBDir);
		dir.open(path);
		file.open(path);		
	},
	
	//-保存 -	
	//	bKeepDel - 是否保留已删除的信息
	save : function(bKeepDel)
	{		
		dir.save();
		file.save(bKeepDel);
	},

	//-关闭-	
	close : function()
	{		
		this._strDBDir = "";
		dir.close();
		file.close();
	},

	//-获取文件绝对路径-
	fGet : function(type, filename, suffix)
	{
		return file.fGetDestFileName(type, filename, suffix);
	},

	//-保存文件-
	fSave : function(data, type, filename, suffix)
	{
		//-判断该文件名是否存在-
		var rcdFile = file.fGet(type, filename, suffix);

		//-1.如果改文件存在，则保存-
		if(rcdFile)
		{
			file.fUpdateFile(data, type, filename, suffix);	
		}
		//-2.文件不存在，申请文件并添加-
		else
		{			
			var rtn = dir.fNewFile(suffix);		
			file.fAddFile(data, type, filename, suffix, rtn[1]);
		}		
	},

	//-删除文件-
	fDel : function(type, filename, suffix)
	{
		//-判断该文件是否存在-
		var rcdfile = file.fGet(type, filename, suffix);
		if(!rcdfile)
			return false;

		//-目录索引信息更新-
		var strDir = file._fGetShortPath(rcdfile);
		if(strDir)
			dir.fDelFile(strDir);

		//-文件索引信息更新-
		file._fDelFile(rcdfile);
		return true;
	},
		
	_strDBDir: "",		//路径

	version:	"20111227",
	author:		"mr.7"
};

exports.filedb = filedb;